#include <gtkmm.h>
#include <string>

#include "PanelLogin.h"
#include "PanelFondo.h"
#include "PanelJuego.h"
#include "PanelElegirPartida.h"
#include <map>

#include "Configuracion.h"

#ifndef VENTANAPRINCIPAL_H_
#define VENTANAPRINCIPAL_H_

#define ANCHO_VENTANA_PRINCIPAL 600
#define ALTO_VENTANA_PRINCIPAL 600

class Juego;

class VentanaPrincipal : public Gtk::Window {
    Gtk::VBox layout;
	
	Gtk::Statusbar statusBar;
	Gtk::EventBox *contenedor;
	
    PanelFondo *panelDescargando;
    PanelLogin *panelLogin;
    PanelJuego *panelJuego;
    PanelElegirPartida *panelPartida;

    PanelFondo *panelActivo;

  public:
    VentanaPrincipal();
    virtual ~VentanaPrincipal();

    void lanzarAviso(std::string);

    void mostrarPantallaLogin();

    void mostrarPantallaEleccionPartida(int nivelMaximo,
                                        std::map<int, int> *jugadoresPorNivel);

    void mostrarPantallaDescargando();

    void mostrarPantallaJuego();

    Gtk::Statusbar* getStatusBar();

    friend class Juego;
};

#endif /* VENTANAPRINCIPAL_H_ */
